Function allocation is the assignment of function responsibility to people, software, and hardware. Function allocation is arguably the most significant challenge facing System Engineering in the design of large, complex systems. Currently, there are no structured, systematic approaches in systems engineering practice that adequately address the function allocation challenge.
To address the function allocation challenge, most systems engineering practices employ a process or functional view of the system early in the design effort to capture requirements and conceptualize the design. Process-driven or function-driven approaches are very limited because they too quickly focus on how things are done. By focusing too soon on how things are done, should be done, or might be done, system design options can be prematurely constrained early in the design effort.
Those practices that do not employ a functional view of the system often use object-oriented or task oriented approaches to accomplish the same result. Object oriented methods link behaviors to objects early. Object-oriented methods require the development of an object model early. Whether they are called behaviors or functions, they are associated with objects and in so doing, there is often a premature assignment of functions to objects, prior to proper consideration of man-machine issues. Task oriented methods can be superior, but they also too quickly concern the designers with how things are done.
Accordingly, it would also be advantageous to provide a more structured, systematic approach to function allocation without prematurely constraining the system design. Similarly, it would be advantageous to directly link requirements capture to function allocation estimates and in so doing, develop design options for comparative evaluation before having to deal with the constraints of a functional or process model. An ideal solution would provide an evolutionary framework that dovetails with state-of-the art System Engineering tools and practices, while capable of supporting and sustaining a holistic treatment of diverse issues such as training, automation, manning, software development requirements (including Human Computer Interface issues), legacy system use, and requirements for new system developments. Just such a solution to the problems noted above and more, is made possible by my invention.